;$(function () {
    layui.extend({
        dtree: '{/}../static/layui_ext/dtree/dtree'   // {/}的意思即代表采用自有路径，即不跟随 base 路径
    }).use(['dtree', 'layer', 'jquery', 'form'], function () {
        var dtree = layui.dtree, layer = layui.layer, $ = layui.jquery,
            form = layui.form;
        // 初始化树
        var DTree = dtree.render({
            elem: "#categoryManagement",
            line: true,
            ficon: ["1", "-1"],
            icon: "-1",
            // cache: false,
            data: getData(),
            toolbar: true,
            toolbarStyle: {
                title: "分类",
                area: ["30%", "50%"]
            },
            toolbarWay: "follow", // "contextmenu"：右键菜单（默认），"fixed"："固定在节点后","follow"："跟随节点动态呈现"
            toolbarFun: {
                loadToolbarBefore: function (buttons, param, $div) {
                    if (param.leaf) { // 如果是叶子节点
                        buttons.addToolbar = "";  // 取消新增功能
                    }
                    // if (param.context == "未分类") {// 如果是未分类，取消所有功能
                    //     buttons.addToolbar = "";
                    //     buttons.editToolbar = "";
                    //     buttons.delToolbar = "";
                    // }
                    return buttons; // 将按钮对象返回
                },
                addTreeNode: function (treeNode, $div) {
                    $.ajax({
                        type: "post",
                        data: {
                            "parentCategoryId": treeNode.parentId,
                            "categoryName": treeNode.context,
                        },
                        url: "insertCategory",
                        dataType: "json",
                        success: function (result) {
                            if (result.code === true) {
                                DTree.changeTreeNodeAdd(result.nodeId, true, "refresh");
                            } else {
                                DTree.changeTreeNodeAdd(false);
                                layer.msg(result.msg);
                            }
                        }, error: function () {
                            layer.msg("添加失败");
                            DTree.changeTreeNodeAdd(false);
                        }
                    });
                },
                editTreeNode: function (treeNode, $div) { //编辑树节点后调用的函数，用于用户自定义，如未指定则树不会发生变化
                    $.ajax({
                        type: "post",
                        data: {
                            "parentId": treeNode.parentId,
                            "nodeId": treeNode.nodeId,
                            "editCategoryName": treeNode.editNodeName,
                        },
                        url: "editCategory",
                        dataType: "json",
                        success: function (result) {
                            if (result.code === true) {
                                DTree.changeTreeNodeEdit(/*treeNode.nodeId,*/ true, "refresh");
                            } else {
                                layer.msg(result.msg);
                                DTree.changeTreeNodeEdit(false);
                            }
                        }, error: function () {
                            layer.msg("修改失败");
                            DTree.changeTreeNodeEdit(false);
                        }
                    });
                    // dtree.changeTreeNodeEdit(param / true / false); // 调用内置函数，修改节点后改变节点内容。传入false，则树不会发生变化
                },
                // editTreeLoad: function (treeNode) { //编辑树的数据回显，用于打开编辑时，回填数据，用于用户自定义。
                //     // console.log(treeNode);
                //     // dtree.changeTreeNodeDone(param); // 调用内置函数，编辑页打开后显示编辑页内容
                // },
                delTreeNode: function (treeNode, $div) { //删除树后调用的函数，用于用户自定义，如未指定则树不会发生变化
                    $.ajax({
                        type: "post",
                        data: {
                            "parentId": treeNode.parentId,
                            "nodeId": treeNode.nodeId,
                        },
                        url: "delCategory",
                        dataType: "json",
                        success: function (result) {
                            if (result.code == true) {
                                DTree.changeTreeNodeDel(true);
                            } else {
                                DTree.changeTreeNodeDel(false);
                                layer.msg(result.msg);
                            }
                        }, error: function () {
                            layer.msg("删除失败");
                            dtree.changeTreeNodeDel(false);
                        }
                    });
                },
            }
        });

        $("#addCategory1Button").click(function () {
            let categoryName = $("#addCategory1Input").val();
            if (categoryName === "") {
                $("#addCategory1Input").focus();
                layer.tips('不能为空', '#addCategory1Input');
            }
            if (categoryName !== "") {
                $.ajax({
                    type: "post",
                    data: {
                        "categoryName": categoryName,
                        "parentCategoryId": -1,
                    },
                    url: "insertCategory",
                    dataType: "json",
                    success: function (result) {
                        if (result.code === true) {
                            // DTree.partialRefreshAdd($("categoryManagement"), result.param);
                            dtree.reload("categoryManagement", {
                                data: getData(),
                                initLevel: "1" //默认为2
                            });
                            $("#addCategory1Input").val("");
                            layer.msg("添加成功。");
                        } else {
                            layer.msg(result.msg);
                        }
                    }, error: function () {
                        // DTree.changeTreeNodeAdd(false);
                        layer.msg("添加失败,稍后再试");
                    }
                });

            }
            ;

        });
    });
});

function getData() {
    var data = [];
    $.ajax({
        async: false,
        url: "getAllCategory",
        type: "POST",
        // data: data,
        dataType: "json",
        success: function (resut) {
            data = resut;
        },
    });
    return data;
};



